package com.ruoyi.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 停车订单退款对象 parking_order_refund
 * 
 * @author dongdong
 * @date 2025-11-20
 */
public class ParkingOrderRefund extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 退款单号 */
    @Excel(name = "退款单号")
    private String refundNo;

    /** 原订单ID */
    @Excel(name = "原订单ID")
    private Long orderId;

    /** 原订单号 */
    @Excel(name = "原订单号")
    private String orderNo;

    /** 原订单金额 */
    @Excel(name = "原订单金额")
    private BigDecimal orderAmount;

    /** 退款类型：1-部分退款 2-全额退款 */
    @Excel(name = "退款类型：1-部分退款 2-全额退款")
    private Integer refundType;

    /** 退款金额 */
    @Excel(name = "退款金额")
    private BigDecimal refundAmount;

    /** 退款原因 */
    @Excel(name = "退款原因")
    private String refundReason;

    /** 退款状态：1-申请中 2-审核通过 3-审核拒绝 4-退款中 5-退款成功 6-退款失败 */
    @Excel(name = "退款状态：1-申请中 2-审核通过 3-审核拒绝 4-退款中 5-退款成功 6-退款失败")
    private Integer refundStatus;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 申请人 */
    @Excel(name = "申请人")
    private String applyBy;

    /** 审核人 */
    @Excel(name = "审核人")
    private String auditBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 审核备注 */
    @Excel(name = "审核备注")
    private String auditRemark;

    /** 支付渠道退款流水号 */
    @Excel(name = "支付渠道退款流水号")
    private String refundTransNo;

    /** 支付渠道退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付渠道退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date refundPayTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setRefundNo(String refundNo) 
    {
        this.refundNo = refundNo;
    }

    public String getRefundNo() 
    {
        return refundNo;
    }
    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setOrderAmount(BigDecimal orderAmount) 
    {
        this.orderAmount = orderAmount;
    }

    public BigDecimal getOrderAmount() 
    {
        return orderAmount;
    }
    public void setRefundType(Integer refundType) 
    {
        this.refundType = refundType;
    }

    public Integer getRefundType() 
    {
        return refundType;
    }
    public void setRefundAmount(BigDecimal refundAmount) 
    {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmount() 
    {
        return refundAmount;
    }
    public void setRefundReason(String refundReason) 
    {
        this.refundReason = refundReason;
    }

    public String getRefundReason() 
    {
        return refundReason;
    }
    public void setRefundStatus(Integer refundStatus) 
    {
        this.refundStatus = refundStatus;
    }

    public Integer getRefundStatus() 
    {
        return refundStatus;
    }
    public void setApplyTime(Date applyTime) 
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() 
    {
        return applyTime;
    }
    public void setApplyBy(String applyBy) 
    {
        this.applyBy = applyBy;
    }

    public String getApplyBy() 
    {
        return applyBy;
    }
    public void setAuditBy(String auditBy) 
    {
        this.auditBy = auditBy;
    }

    public String getAuditBy() 
    {
        return auditBy;
    }
    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }
    public void setAuditRemark(String auditRemark) 
    {
        this.auditRemark = auditRemark;
    }

    public String getAuditRemark() 
    {
        return auditRemark;
    }
    public void setRefundTransNo(String refundTransNo) 
    {
        this.refundTransNo = refundTransNo;
    }

    public String getRefundTransNo() 
    {
        return refundTransNo;
    }
    public void setRefundPayTime(Date refundPayTime) 
    {
        this.refundPayTime = refundPayTime;
    }

    public Date getRefundPayTime() 
    {
        return refundPayTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("refundNo", getRefundNo())
            .append("orderId", getOrderId())
            .append("orderNo", getOrderNo())
            .append("orderAmount", getOrderAmount())
            .append("refundType", getRefundType())
            .append("refundAmount", getRefundAmount())
            .append("refundReason", getRefundReason())
            .append("refundStatus", getRefundStatus())
            .append("applyTime", getApplyTime())
            .append("applyBy", getApplyBy())
            .append("auditBy", getAuditBy())
            .append("auditTime", getAuditTime())
            .append("auditRemark", getAuditRemark())
            .append("refundTransNo", getRefundTransNo())
            .append("refundPayTime", getRefundPayTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
